1. Field of the Invention
This invention relates generally to the visual display of data and, more particularly, to rendering data visualization with minimal round-off error.
2. Description of the Related Art
In an increasingly competitive world, enterprises are constantly in need of business intelligence that empowers the decision makers in the organization to act on the information, and thus impart extra competitive edge to the organization's products and services. Businesses succeed or fail based on their ability to accurately quantify how many leads become orders, identify their most profitable customers, forecast manufacturing capabilities, manage reliable supply chains, and create sales projections, for example.
However, obtaining information on which decision makers can act presents several practical challenges. One such challenge is the massive amount of data available to the enterprise in today's Information Age. Conversion of data to information which can be readily understood is the obstacle. Additionally, enterprises today have data spread over multiple data sources ranging from legacy systems to relational databases and text files. Even if these problems are surmounted, publishing information in a secure and reliable manner remains another concern for enterprises.
Reporting systems with data visualization functionalities can provide users with the capability to convert diverse data into information that can be easily visualized and deciphered to exploit the information and learn more about the business. Data visualization systems typically display ranges of data values as the ratios of sizes and positions of graphical marks or symbols within the area of a larger shape, such as a rectangular graph or chart. For example, scatter plots display ranges of data values in two data dimensions, a horizontal dimension and a vertical dimension, within a rectangle. The data values are displayed as ratios of positions of dots along the dimensions of the rectangle. In another example, treemaps display hierarchical data by using nesting rectangles such that the ratios of the areas of the innermost nested rectangles correspond to the data values within groups at the lowest hierarchical level.
Typical data visualization algorithms use floating point arithmetic to minimize error while determining the size and position of the graphical representation of the data. Essentially, rendering with greater precision corresponds to less error. Calculating positions of graphics with floating point arithmetic is most appropriate when rendering with graphics systems that support floating point coordinates, such as Scalable Vector Graphics (SVG) or Java 2D, an application programming interface for drawing two-dimensional graphics using the Java programming language. However, calculating positions with floating point arithmetic is not appropriate when rendering with graphics systems that only support integer positions, such as an HTML rendering environment. Typical web browsers support the HTML rendering environment.
When graphics positions calculated with floating point arithmetic are rendered at integer positions, round-off error occurs when the fractional value of the floating point arithmetic is truncated into an integer. Round-off error produces irregular gaps in the data visualization. Some data visualization methods render the graphics with floating point arithmetic at integer positions without regard for the round-off error. In these methods, the accuracy of the data representation is highly compromised because of the disregard of the round-off error. Other data visualization methods attempt to minimize round-off error on graphics systems which only support integer positions by necessitating the use of plug-in components which support floating point arithmetic, such as SVG or Java plug-ins. However, other methods of minimizing round-off error without requiring plug-in components are desirable.